This invention relates generally to data storage systems, and more particularly to data storage systems having redundancy arrangements to protect against total system failure in the event of a failure in a component or subassembly of the storage system.
As is known in the art, large mainframe computer systems require large capacity data storage systems. These large main frame computer systems generally include data processors which perform many operations on data introduced to the computer system through peripherals including the data storage system. The results of these operations are output to peripherals, including the storage system.
One type of data storage system is a magnetic disk storage system. Here a bank of disk drives and the main frame computer system are coupled together through an interface. The interface includes CPU, or xe2x80x9cfront endxe2x80x9d, controllers (or directors) and xe2x80x9cback endxe2x80x9d disk controllers (or directors). The interface operates the controllers (or directors) in such a way that they are transparent to the computer. That is, data is stored in, and retrieved from, the bank of disk drives in such a way that the mainframe computer system merely thinks it is operating with one mainframe memory. One such system is described in U.S. Pat. No. 5,206,939, entitled xe2x80x9cSystem and Method for Disk Mapping and Data Retrievalxe2x80x9d, inventors Moshe Yanai, Natan Vishlitzky, Bruno Alterescu and Daniel Castel, issued Apr. 27, 1993, and assigned to the same assignee as the present invention.
As described in such U.S. Patent, the interface may also include, in addition to the CPU controllers (or directors) and disk controllers (or directors), addressable cache memories. The cache memory is a semiconductor memory and is provided to rapidly store data from the main frame computer system before storage in the disk drives, and, on the other hand, store data from the disk drives prior to being sent to the main frame computer. The cache memory being a semiconductor memory, as distinguished from a magnetic memory as in the case of the disk drives, is much faster than the disk drives in reading and writing data.
The CPU controllers, disk controllers and cache memory are interconnected through a backplane printed circuit board. More particularly, disk controllers are mounted on disk controller printed circuit boards. CPU controllers are mounted on CPU controller printed circuit boards. And, cache memories are mounted on cache memory printed circuit boards. The disk controller, CPU controller and cache memory printed circuit boards plug into the backplane printed circuit board. In order to provide data integrity in case of a failure in a controller, the backplane printed circuit board has a pair of buses. One set the disk controllers is connected to one bus and another set of the disk controllers is connected to the other bus. Likewise, one set the CPU controllers is connected to one bus and another set of the CPU controllers is connected to the other bus. The cache memories are connected to both buses. Each one of the buses provides data, address and control information.
In accordance with the present invention, an error detector is provided. The error detector includes: a data source for providing data, such data having a plurality of bytes, each byte having a parity bit; a first logic for determining whether the parity bits have the same parity and for producing a combined parity bit representative of such determination; a check bit generator for producing a plurality of check bits from the data; a second logic for determining whether the produced check bits have the same logic state and for producing a combined check bit representative of such determination; a third logic to determine whether the combined check bit and the combined parity bit have the same logic state.
In accordance with another feature of the invention, a method is provided for checking errors in data. The method includes transmitting data along with parity bits to a first end of a data transmission network; generating check bits from the data as such data passes through the network; comparing the check bits with the parity bits to determine whether there has been an error generated by the network.
In one embodiment, the check bit generator produces the check bits in accordance with a redundancy check bit generating code. In one embodiment, the code is a Hamming code.
In accordance with another feature of the invention, an error detector is provided. The error detector includes a data source for providing data, such data having a plurality of bytes, each one of such bytes having a parity bit; a first XORing section for XORing the parity bits to reduce the parity bits to a combined parity bit; a check bit generator for producing a plurality of check bits from the data; a second XORing section for XORing the check bits to reduce the check bits to a combined check bit; a logic to determine whether the combined check bit and the combined parity bit have the same logic state.
In one embodiment, the check bit generator produces the check bits in accordance with a redundancy check bit generating code.
In one embodiment, the logic comprises XORing logic. The check bit generator produces the check bits in accordance with a redundancy check bit generating code.
In accordance with another feature of the invention, an error detector is provided. The detector includes: a data source for providing data; a check bit generator responsive to the data for generating check bits; a first logic for producing a combined parity bit from the generated check bit; a error detector/corrector adapted to detect an error in the data and adapted to correct such data in event of a detected error; a parity bit generator for producing a plurality parity bits from data produced by the error detector/corrector; a second logic for producing a combined parity bit representative of the produced plurality of parity bits; a third logic to determine whether the combined check bit and the combined parity bit have the same logic state.
In accordance with still another feature of the invention, an error detector is provided, comprising: a data source for providing data, such data having a plurality of bytes; a check bit generator for producing a plurality of check bits from the data; a first XORing section for XORing the check bits to reduce the check bits to a combined check bit; a error detector/corrector adapted to detect an error in the data and adapted to correct such data in event of a detected error; a parity bit generator for producing a plurality parity bits from data produced by the error detect or/corrector; a second XORing section for XORing the parity bits to reduce the parity bits to a combined parity bit; a third logic to determine whether the combined check bit and the combined parity bit have the same logic state.